home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 32 / Amiga Format AFCD32 (Nov 1998, Issue 117).iso / -seriously_amiga- / programming / c / mesa-2.6 / lib / glu.c next >
C/C++ Source or Header  |  1998-08-10  |  5KB  |  183 lines

  1. /*
  2.  * Mesa 3-D graphics library
  3.  * Version:  2.6
  4.  * Copyright (C) 1995-1997  Brian Paul
  5.  *
  6.  * This library is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU Library General Public
  8.  * License as published by the Free Software Foundation; either
  9.  * version 2 of the License, or (at your option) any later version.
  10.  *
  11.  * This library is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.  * Library General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU Library General Public
  17.  * License along with this library; if not, write to the Free
  18.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  */
  20.  
  21.  
  22. /*
  23.  * glu.c
  24.  *
  25.  * Version 1.0  27 Jun 1998
  26.  * by Jarno van der Linden
  27.  * jarno@kcbbs.gen.nz
  28.  *
  29.  * File created from glu.h ver 1.9 using GenProtos
  30.  *
  31.  */
  32.  
  33.  
  34. #include "gl/gl.h"
  35. #include "gl/glu.h"
  36.  
  37. extern struct Library *mesaBase;
  38.  
  39.  
  40. extern __asm __saveds void APIENTRY gluLookAtA(register __a0 void *);
  41. #pragma libcall mesaBase gluLookAtA 972 801
  42.  
  43. __saveds void APIENTRY gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, GLdouble centerx, GLdouble centery, GLdouble centerz, GLdouble upx, GLdouble upy, GLdouble upz)
  44. {
  45.     struct gluLookAtArgs {
  46.         GLdouble eyex;
  47.         GLdouble eyey;
  48.         GLdouble eyez;
  49.         GLdouble centerx;
  50.         GLdouble centery;
  51.         GLdouble centerz;
  52.         GLdouble upx;
  53.         GLdouble upy;
  54.         GLdouble upz;
  55.     } args;
  56.  
  57.     args.eyex = eyex;
  58.     args.eyey = eyey;
  59.     args.eyez = eyez;
  60.     args.centerx = centerx;
  61.     args.centery = centery;
  62.     args.centerz = centerz;
  63.     args.upx = upx;
  64.     args.upy = upy;
  65.     args.upz = upz;
  66.  
  67.     gluLookAtA(&args);
  68. }
  69.  
  70.  
  71. extern __asm __saveds GLint APIENTRY gluProjectA(register __a0 void *);
  72. #pragma libcall mesaBase gluProjectA 98a 801
  73.  
  74. __asm __saveds GLint APIENTRY gluProject(register __fp0 GLdouble objx, register __fp1 GLdouble objy, register __fp2 GLdouble objz, register __a0 const GLdouble modelMatrix[16], register __a1 const GLdouble projMatrix[16], register __a2 const GLint viewport[4], register __a3 GLdouble *winx, register __a4 GLdouble *winy, register __a5 GLdouble *winz)
  75. {
  76.     struct gluProjectArgs {
  77.         GLdouble objx;
  78.         GLdouble objy;
  79.         GLdouble objz;
  80.         GLdouble *modelMatrix;
  81.         GLdouble *projMatrix;
  82.         GLint *viewport;
  83.         GLdouble *winx;
  84.         GLdouble *winy;
  85.         GLdouble *winz;
  86.     } args;
  87.  
  88.     args.objx = objx;
  89.     args.objy = objy;
  90.     args.objz = objz;
  91.     args.modelMatrix = modelMatrix;
  92.     args.projMatrix = projMatrix;
  93.     args.viewport = viewport;
  94.     args.winx = winx;
  95.     args.winy = winy;
  96.     args.winz = winz;
  97.  
  98.     return(gluProjectA(&args));
  99. }
  100.  
  101.  
  102. extern __asm __saveds GLint APIENTRY gluUnProjectA(register __a0 void *);
  103. #pragma libcall mesaBase gluUnProjectA 996 801
  104.  
  105. __asm __saveds GLint APIENTRY gluUnProject(register __fp0 GLdouble winx, register __fp1 GLdouble winy, register __fp2 GLdouble winz, register __a0 const GLdouble modelMatrix[16], register __a1 const GLdouble projMatrix[16], register __a2 const GLint viewport[4], register __a3 GLdouble *objx, register __a4 GLdouble *objy, register __a5 GLdouble *objz)
  106. {
  107.     struct gluUnProjectArgs {
  108.         GLdouble winx;
  109.         GLdouble winy;
  110.         GLdouble winz;
  111.         GLdouble *modelMatrix;
  112.         GLdouble *projMatrix;
  113.         GLint *viewport;
  114.         GLdouble *objx;
  115.         GLdouble *objy;
  116.         GLdouble *objz;
  117.     } args;
  118.  
  119.     args.winx = winx;
  120.     args.winy = winy;
  121.     args.winz = winz;
  122.     args.modelMatrix = modelMatrix;
  123.     args.projMatrix = projMatrix;
  124.     args.viewport = viewport;
  125.     args.objx = objx;
  126.     args.objy = objy;
  127.     args.objz = objz;
  128.  
  129.     return(gluUnProjectA(&args));
  130. }
  131.  
  132.  
  133. extern __asm __saveds void APIENTRY gluCylinderA(register __a0 void *);
  134. #pragma libcall mesaBase gluCylinderA 9e4 801
  135.  
  136. __asm __saveds void APIENTRY gluCylinder(register __a0 GLUquadricObj *qobj, register __fp0 GLdouble baseRadius, register __fp1 GLdouble topRadius, register __fp2 GLdouble height, register __d0 GLint slices, register __d1 GLint stacks)
  137. {
  138.     struct gluCylinderArgs {
  139.         GLUquadricObj *qobj;
  140.         GLdouble baseRadius;
  141.         GLdouble topRadius;
  142.         GLdouble height;
  143.         GLint slices;
  144.         GLint stacks;
  145.     } args;
  146.  
  147.     args.qobj = qobj;
  148.     args.baseRadius = baseRadius;
  149.     args.topRadius = topRadius;
  150.     args.height = height;
  151.     args.slices = slices;
  152.     args.stacks = stacks;
  153.  
  154.     gluCylinderA(&args);
  155. }
  156.  
  157.  
  158. extern __asm __saveds void APIENTRY gluPartialDiskA(register __a0 void *);
  159. #pragma libcall mesaBase gluPartialDiskA 9fc 801
  160.  
  161. __asm __saveds void APIENTRY gluPartialDisk(register __a0 GLUquadricObj *qobj, register __fp0 GLdouble innerRadius, register __fp1 GLdouble outerRadius, register __d0 GLint slices, register __d1 GLint loops, register __fp2 GLdouble startAngle, register __fp3 GLdouble sweepAngle)
  162. {
  163.     struct gluPartialDiskArgs {
  164.         GLUquadricObj *qobj;
  165.         GLdouble innerRadius;
  166.         GLdouble outerRadius;
  167.         GLint slices;
  168.         GLint loops;
  169.         GLdouble startAngle;
  170.         GLdouble sweepAngle;
  171.     } args;
  172.  
  173.     args.qobj = qobj;
  174.     args.innerRadius = innerRadius;
  175.     args.outerRadius = outerRadius;
  176.     args.slices = slices;
  177.     args.loops = loops;
  178.     args.startAngle = startAngle;
  179.     args.sweepAngle = sweepAngle;
  180.  
  181.     gluPartialDiskA(&args);
  182. }
  183.